/*
 ------------------------------------------------------------------------------
 Copyright (C) 2009-2011 Eternal Games.

 This file is part of the Eternal Tech source code.

 The Eternal Tech source code is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or (at your
 option) any later version.

 The Eternal Tech source code is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 more details.

 You should have received a copy of the GNU General Public License along with
 the Eternal Tech source code; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 ------------------------------------------------------------------------------
*/


//
// s_public.h - Public header file to all other systems
//


#if !defined(__S_PUBLIC_H__) || !INCLUDE_GUARDS
#define __S_PUBLIC_H__


struct alConfig_t {
	bool					initialized;

	const char				*vendorString;
	const char				*rendererString;
	const char				*versionString;
	const char				*extensionsString;
	const char				*alcExtensionsString;

	const char				*deviceName;
	const char				*deviceList;

	const char				*captureDeviceName;
	const char				*captureDeviceList;

	int						mixerFrequency;
	int						mixerRefresh;
	bool					mixerSync;

	int						monoSources;
	int						stereoSources;
};

extern alConfig_t			alConfig;

/*
 ==============================================================================

    S_SOUND.CPP

 ==============================================================================
*/

struct sound_t		*S_FindSound (const char *name, int flags);
struct sound_t		*S_RegisterSound (const char *name, int flags);

/*
 ==============================================================================

    S_MAIN.CPP

 ==============================================================================
*/

extern cvar_t				*s_alDriver;
extern cvar_t				*s_deviceName;
extern cvar_t				*s_voiceCapture;
extern cvar_t				*s_captureDeviceName;

alConfig_t			S_GetALConfig ();
void				S_Activate (bool active);

void				S_Init (bool all);
void				S_Shutdown (bool all);


#else
FILE_WARNING
#endif   // __S_PUBLIC_H__